package com.amsp.oa.oademo.service;

import com.amsp.oa.oademo.entity.ResignationApplication;
import com.amsp.oa.oademo.vo.ResignationApplicationVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 职员/员工离职申请表Service接口
 */
public interface ResignationApplicationService extends IService<ResignationApplication> {

    /**
     * 分页查询离职申请表列表
     *
     * @param page       分页参数
     * @param name       姓名
     * @param department 部门
     * @return 分页结果
     */
    Page<ResignationApplicationVO> getList(Page<ResignationApplication> page, String name, String department);

    /**
     * 获取离职申请表详情
     *
     * @param id 主键ID
     * @return 离职申请表详情
     */
    ResignationApplicationVO getDetail(Long id);

    /**
     * 保存或更新离职申请表
     *
     * @param vo 离职申请表VO
     * @return 是否成功
     */
    boolean saveOrUpdate(ResignationApplicationVO vo);

    /**
     * 批量保存离职申请表
     *
     * @param voList 离职申请表VO列表
     * @return 是否成功
     */
    boolean batchSave(List<ResignationApplicationVO> voList);

    /**
     * 删除离职申请表
     *
     * @param id 主键ID
     * @return 是否成功
     */
    boolean delete(Long id);

    /**
     * 批量删除离职申请表
     *
     * @param ids 主键ID列表
     * @return 是否成功
     */
    boolean batchDelete(List<Long> ids);
}